﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using negocios;
using publico;
using objetos;


namespace softsales.pagina.operacao_fiscal
{
    public partial class operacao_fiscal_formulario : System.Web.UI.Page
    {
        OBJ_TB_OPERACAO_FISCAL o_tb_operacao_fiscal = new OBJ_TB_OPERACAO_FISCAL();
        BLL_TB_OPERACAO_FISCAL b_tb_operacao_fiscal = new BLL_TB_OPERACAO_FISCAL();


        BLL_TB_IMPOSTO_CRT b_tb_imposto_crt = new BLL_TB_IMPOSTO_CRT();
        BLL_TB_TIPO_CADASTRO_FISCAL b_tb_tipo_cadastro_fiscal = new BLL_TB_TIPO_CADASTRO_FISCAL();
        BLL_TB_CFOP b_tb_cfop = new BLL_TB_CFOP();
        BLL_TB_IMPOSTO_CSOSN b_tb_imposto_csosn = new BLL_TB_IMPOSTO_CSOSN();
        BLL_TB_IMPOSTO_CST_COFINS b_tb_imposto_cst_cofins = new BLL_TB_IMPOSTO_CST_COFINS();
        BLL_TB_IMPOSTO_CST_ICMS b_tb_imposto_cst_icms = new BLL_TB_IMPOSTO_CST_ICMS();
        BLL_TB_IMPOSTO_CST_IPI b_tb_imposto_cst_ipi = new BLL_TB_IMPOSTO_CST_IPI();
        BLL_TB_IMPOSTO_CST_PIS b_tb_imposto_cst_pis = new BLL_TB_IMPOSTO_CST_PIS();
        BLL_TB_IMPOSTO_ISSQN b_tb_imposto_issqn = new BLL_TB_IMPOSTO_ISSQN();

        BLL_TB_TRIBUTACAO_COFINS b_tb_tributacao_cofins = new BLL_TB_TRIBUTACAO_COFINS();
        BLL_TB_TRIBUTACAO_ICMS b_tb_tributacao_icms = new BLL_TB_TRIBUTACAO_ICMS();
        BLL_TB_TRIBUTACAO_IPI b_tb_tributacao_ipi = new BLL_TB_TRIBUTACAO_IPI();
        BLL_TB_TRIBUTACAO_ISSQN b_tb_tributacao_issqn = new BLL_TB_TRIBUTACAO_ISSQN();
        BLL_TB_TRIBUTACAO_PIS b_tb_tributacao_pis = new BLL_TB_TRIBUTACAO_PIS();
        BLL_TB_UF b_tb_uf = new BLL_TB_UF();
        BLL_TB_ORIGEM_PRODUTO b_tb_origem_produto = new BLL_TB_ORIGEM_PRODUTO();
        

        BLL_TB_LOG_ERRO b_tb_log_erro = new BLL_TB_LOG_ERRO();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (PUB_SESSAO.Logado())
            {

                if (!IsPostBack)
                {
                    b_tb_imposto_crt.PreencheControle(DDL_ID_CRT, true);
                    b_tb_tipo_cadastro_fiscal.PreencheControle(DDL_ID_TIPO_CADASTRO_FISCAL, true);

                    b_tb_imposto_csosn.PreencheControle(DDL_ID_CSOSN, true);

                    b_tb_imposto_cst_cofins.PreencheControle(DDL_ID_CST_COFINS, true);
                    b_tb_imposto_cst_icms.PreencheControle(DDL_ID_CST_ICMS, true);
                    b_tb_imposto_cst_ipi.PreencheControle(DDL_ID_CST_IPI, true);
                    b_tb_imposto_cst_pis.PreencheControle(DDL_ID_CST_PIS, true);
                    b_tb_imposto_issqn.PreencheControle(DDL_ID_SERVICO_ISSQN, true);

                    b_tb_uf.PreencheControle(DDL_ID_UF, true);

                    b_tb_origem_produto.PreencheControle(DDL_ID_ORIGEM_PRODUTO, true);

                    b_tb_tributacao_cofins.PreencheControle(LST_COFINS, false);
                    b_tb_tributacao_icms.PreencheControle(LST_ICMS, false);
                    b_tb_tributacao_ipi.PreencheControle(LST_IPI, false);
                    b_tb_tributacao_pis.PreencheControle(LST_PIS, false);
                    b_tb_tributacao_issqn.PreencheControle(LST_ISSQN, false);



                    if (Request["id"] != null)
                    {
                        LBL_TITULO_PAGINA.Text = "Editar Natureza Operação Fiscal";
                        if (PUB_FUNCOES.ApenasNumero(Request["id"].ToString()))
                        {
                            Editar(Request["id"].ToString());
                        }
                    }
                    else
                    {
                        LBL_TITULO_PAGINA.Text = "Incluir Natureza Operação Fiscal";
                    }
                }
                else
                {

                    if (Session["id_cfop"] != null)
                    {

                        if (TXT_CFOP.Text == string.Empty)
                        {
                            TXT_CFOP.Text = Session["id_cfop"].ToString();

                        }                    
                        Session.Remove("id_cfop");
                    }

                }

            }
        }

        private void Editar(String id)
        {
            try
            {
                o_tb_operacao_fiscal = b_tb_operacao_fiscal.SelecionarObjetoPorId(Convert.ToInt32(id));

                HF_ID.Value = o_tb_operacao_fiscal.id.ToString();
                TXT_DESC_NOTA_FISCAL.Text = o_tb_operacao_fiscal.desc_nota_fiscal.ToString();
                TXT_DESC_OPERACAO_FISCAL.Text = o_tb_operacao_fiscal.desc_operacao_fiscal.ToString();

                TXT_CFOP.Text = o_tb_operacao_fiscal.id_cfop.ToString();
                DDL_ID_CRT.SelectedValue = o_tb_operacao_fiscal.id_crt.ToString();
                DDL_ID_TIPO_CADASTRO_FISCAL.SelectedValue = o_tb_operacao_fiscal.id_tipo_cadastro_fiscal.ToString();


                LST_COFINS.SelectedValue = o_tb_operacao_fiscal.id_tributacao_cofins.ToString();
                LST_ICMS.SelectedValue = o_tb_operacao_fiscal.id_tributacao_icms.ToString();
                LST_IPI.SelectedValue = o_tb_operacao_fiscal.id_tributacao_ipi.ToString();
                LST_ISSQN.SelectedValue = o_tb_operacao_fiscal.id_tributacao_issqn.ToString();
                LST_PIS.SelectedValue = o_tb_operacao_fiscal.id_tributacao_pis.ToString();
             
                CHK_SIT_MOVIMENTA_ESTOQUE.Checked = o_tb_operacao_fiscal.sit_movimenta_estoque;
                CHK_SIT_GERA_FINANCEIRO.Checked = o_tb_operacao_fiscal.sit_gera_financeiro;
                    
 
            }
            catch (Exception ex)
            {

                b_tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Erro ao tentar carregar o formulário");
            }
           
        }


        protected void BTN_SALVAR_Click(object sender, EventArgs e)
        {
            try
            {

               
                o_tb_operacao_fiscal.desc_nota_fiscal = TXT_DESC_NOTA_FISCAL.Text;
                o_tb_operacao_fiscal.desc_operacao_fiscal = TXT_DESC_OPERACAO_FISCAL.Text;
                o_tb_operacao_fiscal.id_cfop = Convert.ToInt32(TXT_CFOP.Text);
                o_tb_operacao_fiscal.id_crt = Convert.ToInt32(DDL_ID_CRT.SelectedValue);
                o_tb_operacao_fiscal.id_tipo_cadastro_fiscal = Convert.ToInt32(DDL_ID_TIPO_CADASTRO_FISCAL.SelectedValue);           
                o_tb_operacao_fiscal.sit_movimenta_estoque = CHK_SIT_MOVIMENTA_ESTOQUE.Checked;
                o_tb_operacao_fiscal.sit_gera_financeiro = CHK_SIT_GERA_FINANCEIRO.Checked;

                if (LST_COFINS.Items.Count > 0)
                {
                    if (LST_COFINS.SelectedValue != string.Empty)
                    {
                        o_tb_operacao_fiscal.id_tributacao_cofins = Convert.ToInt32(LST_COFINS.SelectedValue);
                    }
                }

                if (LST_ICMS.Items.Count > 0)
                {
                    if (LST_ICMS.SelectedValue != string.Empty)
                    {
                        o_tb_operacao_fiscal.id_tributacao_icms = Convert.ToInt32(LST_ICMS.SelectedValue);
                    }
                }

                if (LST_IPI.Items.Count > 0)
                {
                    if (LST_IPI.SelectedValue != string.Empty)
                    {
                        o_tb_operacao_fiscal.id_tributacao_ipi = Convert.ToInt32(LST_IPI.SelectedValue);
                    }
                }

                if (LST_PIS.Items.Count > 0)
                {
                    if (LST_PIS.SelectedValue != string.Empty)
                    {
                        o_tb_operacao_fiscal.id_tributacao_pis = Convert.ToInt32(LST_PIS.SelectedValue);
                    }
                }

                if (LST_ISSQN.Items.Count > 0)
                {
                    if (LST_ISSQN.SelectedValue != string.Empty)
                    {
                        o_tb_operacao_fiscal.id_tributacao_issqn = Convert.ToInt32(LST_ISSQN.SelectedValue);
                    }
                }

                
 
                string msg = string.Empty;

                if (HF_ID.Value != string.Empty)
                {
                    o_tb_operacao_fiscal.id = Convert.ToInt32(HF_ID.Value);
                    b_tb_operacao_fiscal.Alterar(o_tb_operacao_fiscal);
                    msg = PUB_MENSAGEM.MSG_ALTERACAO; 
                    

                }
                else
                {
                    b_tb_operacao_fiscal.Incluir(o_tb_operacao_fiscal);
                    msg = PUB_MENSAGEM.MSG_INCLUSAO;
                }

                Master.MSG_ALERTA(msg, "default.aspx", false);
            }
            catch (Exception)
            {

                throw;
            }

        }

        protected void BTN_CANCELAR_Click(object sender, EventArgs e)
        {
            Response.Redirect("default.aspx", false);
        }

    }
}